portal Michała Hanćkowiaka
Begin main content
import java.io.*;
import java.net.*;

public class c5p2a {

    private ServerSocket ssocket; // do nasluchu (for listening)
    private int port; // nr portu (port number)

    public c5p2a(int aport) throws IOException {
        port = aport;

        // utworzenie gniazda nasluchu
        // i powiazanie go z portem (bind)
    // creation of "listen" socket and binding with port
        ssocket = new ServerSocket(port);
    }

    public void startListening() {
        Socket socket = null; // dla jednego klienta (for one client)
        int ivalue;
        String svalue;
        double dvalue;

        try {
            // czekaj na polaczenie (wait for connection)
            socket = ssocket.accept();

            // pobierz strumienie i nadbuduj
            // na nich "lepsze" strumienie
        // (receive straems and build "better" streams)
            DataInputStream dis = new DataInputStream(
                socket.getInputStream());
            DataOutputStream dos = new DataOutputStream(
                socket.getOutputStream());

            // czytaj kolejno int, String i double (read: int, string, double)
            ivalue = dis.readInt();
            svalue = dis.readUTF();
            dvalue = dis.readDouble();

            // wypisz co odebrano (print what was received)
            System.out.println("Odebrano (received):");
            System.out.println(ivalue);
            System.out.println(svalue);
            System.out.println(dvalue);

            // odpisz klientowi
            dos.writeUTF("ODEBRANO POPRAWNIE (received correctly)");

            // zamknij strumienie (close streams)
            dis.close();
            dos.close();

            // zamknij gniazdo (close sockets)
            socket.close();

            // zamknij gniazdo nasluchujace (close listening socket)
            ssocket.close();

        // jesli cos pojdzie zle, wypisz
        // stos wywolan
    // if anything goes wrong, print stack trace
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }
    }

    // args[0] - numer portu (port number)
    public static void main(String[] args) {
        if (args.length < 1) {
            System.out.println(
                "Podaj numer portu (provide port number)"
            );
            return;
        }
        try {
            // ustal port
            int port = Integer.parseInt(args[0]);
            c5p2a server = new c5p2a(port);
            System.out.println("Czekam (I am waiting)...");
            server.startListening();

        // moze byc albo wyjatek z konstruktora
        // c5p2a albo z Integer.parseInt jesli parametr
        // nie jest liczba
    // possible exception if paremeter Integer.parseInt is not a number
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("Serwer zakonczyl dzialanie (server finished).");
    }
}

uwaga: portal używa ciasteczek tylko do obsługi tzw. sesji...